文章同步發表至 Medium
介紹完 .NET 和 EF Core 如何跟 PostgreSQL 建立連線之後,接下來要換 .NET Framework 了。
由於在 .NET Framework 中使用 EntityFramework,會產生一個特殊的檔案:.edmx
,一般編譯起開啟之後會是 XML 格式的資料,只有在 Visual Stadio 中可以用 GUI 介面檢視,因此有使用到的專案幾乎可以說是必須要透過 Visual Stadio 才能維護。
要注意的是目前好像還沒有完全支援 Visual Stadio 2022,如果有需要維護專案的話請使用 2019 的版本開啟比較安全。
套件 | 版本 |
---|---|
EntityFramework | 6.4.4 |
EntityFramework6.Npgsql | 6.4.3 |
Npgsql | 6.0.7 |
開啟一個新的專案後,在任意的資料夾上右鍵,選擇新增 > 新增項目,找到 ADO.NET 模型的選項,在下方輸入名稱後,會進入像這樣的介面:
選擇第一個 EF Designer from database 按下一步,點選新的連線後可以看到一個新的視窗彈出:
也許你在這一步之前就會接到一個警告,內容大致上是說 Npgsql 沒有載入完全,重開可以解決等等,或是像我們現在這樣,在這個畫面中找不到 Npgsql 的選項。
第一個步驟是要幫 Visual Stadio 安裝 Npgsql。
在視窗最上方的工具列中找到延伸模組,選擇管理延伸模組,找到 Npgsql 之後選擇安裝。
正常來說他會告訴你要先把所有的 Visual Stadio 視窗關閉,安裝才會執行。如果你順利的安裝完成,基本上應該還是沒辦法執行。
幾個月前就有人在 Npgsql 的 GitHub 上提出了相關的討論,其中有提到相關的團隊或許不會再另外更新了,但有好心人士另外拉了一個 Fork,釋出了幾個新的 Extension 版本。
基本上安裝完成後不需要重新開機,一樣右鍵 > 新增項目 > ADO.NET 模型,應該就可以看到 PostgreSQL 的選項了:
然而,工作上常常會有一些專案是沒有辦法把 Npgsql 升級到最新版的,如果你所使用的 4.X 的版本,就算安裝了新版的 Extension 也無法使用。而在 Npgsql 官方文件上有這樣的一段文字:
If you need to use Npgsql as a database provider for PowerBI, Excel or other similar systems, you need to install it into the Windows Global Assembly Cache (GAC), and do some special configuration. Npgsql versions prior to 5.0.0 provided a Windows installer (MSI) which does the installation for you ...
大概就是說 5.0.0 之前你在特定使用的情況下,需要把 Npgsql 註冊到 Windows 中,所以有提供 .msi
進行這個動作,但極度不建議這樣做。總而言之,要取得 .msi
檔案的話要在 GitHub Release 頁面上,找到 4.X 的版本,有一些會提供 Npgsql.mis
的檔案,我能找到的最新版本是 4.1.8。
下載之後要選擇安裝的部分,千萬要注意把 GAC 下載的部分選擇全部安裝,否則裝了也不會有任何功用喔。